const CompressionWebpackPlugin = require('compression-webpack-plugin')
const TerserPlugin = require('terser-webpack-plugin')

const ENV = process.env.NODE_ENV

let gzip = []

if(ENV === 'pro' || ENV === 'test'){
  gzip = [
    new CompressionWebpackPlugin({
      algorithm: 'gzip',
      test: /\.(js|css|html)$/,
      threshold: 10240,
      minRatio: 0.8
    })
  ]
}
module.exports = {
  publicPath: ENV === 'development' ? '/' : `${process.env.VUE_APP_DOMAIN}/${process.env.VUE_APP_APPID}/vue2_cli4_template/`, //部署应用包时的基本 URL，空值所有的资源都会被链接为相对路径
  outputDir: 'vue2_cli4_template',//生成文件的目录名称（默认dist）,此处直接使用发布的文件名
  productionSourceMap: false, //如果您不需要生产时的源映射，那么将此设置为false可以加速生产构建
  devServer: {
  	host: '0.0.0.0',
  	port: 10000,
    open: false, //配置自动启动浏览器
    // 关闭主机检查，使微应用可以被 fetch
    disableHostCheck: true,
    // 配置跨域请求头，解决开发环境的跨域问题
    headers: {
        "Access-Control-Allow-Origin": "*",
    },
  },
  configureWebpack:{
      plugins: [
        ...gzip
      ],
      output: {
        // 微应用的包名，这里与主应用中注册的微应用名称一致
        library: "policy-Butler",
        libraryTarget: "umd"
      },
      // externals: {
      //   'vue-router': 'VueRouter',
      //   'axios': 'axios'
      // },
      optimization: {
        minimizer: [
          new TerserPlugin({
            terserOptions: {
              compress: {
                drop_console: ENV === 'pro',
                drop_debugger: ENV === 'pro'
              }
            }
          })
        ],
      },
  },
  chainWebpack: config => {
    // 移除 prefetch 插件
    config.plugins.delete('prefetch')
  },
  css: {
    loaderOptions: {
      stylus: {
        'resolve url': true,
        'import': [
          './src/theme'
        ]
      }
    }
  },
  pluginOptions: {
    'cube-ui': {
      postCompile: true,
      theme: true
    }
  }
}
